O8889(CAP 0-90 DEG CORNER FULL RAD.)
(SQUARE / RECTANGLE PART)
(ABSOLUTE SURFACING MACRO)
(START OF TANGENT/ TOP OF PART)
(END OF TANGENT/ SIDES OF PART)
(WORKS)

(FORMAT G65/G66 CDTXYSKRZF)
(C = #3 - CUSP HEIGHT/ DEG. OF ROTATION) 
(D = #7 - TOOL DIAMETER)
(T = #20 - TOOL RADIUS/ BALL OR BULL)
(X = #24 - FINAL SIZE -X- DIM.)
(Y = #25 - FINAL SIZE -Y- DIM.)
(S = #19 - PART CORNER RAD./ SIDES)
(K = #6 - PART CORNER RAD./ TOP)
(R = #18 - R PLANE) 
(Z = #26 - Z START ZERO)
(F = #9 - FEEDRATE) 
(*********************************)

IF[#19LT#6]GOTO1000
IF[[#25/2]LT#19]GOTO1001
IF[[#24/2]LT#19]GOTO1002
#100=0
#101=#6+#20
#102=#3
IF[#102GT15.]THEN#102=15.
#102=ROUND[90./#102]
#102=90./#102
#103=#5001
#104=[#103-.1]-[[#7/2]+[#24/2]]
#105=#5002
#115=[#105+.1]+[[#7/2]+[#25/2]]
#121=#103+[[#24/2]-#19]
#131=#105+[[#25/2]-#19]
#122=#103-[[#24/2]-#19]
#132=#105+[[#25/2]-#19]
#123=#103-[[#24/2]-#19]
#133=#105-[[#25/2]-#19]
#124=#103+[[#24/2]-#19]
#134=#105-[[#25/2]-#19]
#107=0
IF[#7EQ[#20*2]]GOTO1
#107=[#7/2]-#20
N1G0G90X#104Y#115
Z[#26+.1]
G1Z#26F#9
#106=#5003-#101
WHILE[#100LE90.]DO1
IF[#100GT90.]GOTO100
#117=#107
#107=#107+[SIN[#100]*[#101]] 
#108=#106+[COS[#100]*[#101]] 
IF[#6EQ#19]THENGOTO10
#107=#107+[#19-#6]
N10#100=#100+#102
G1Z#108F#9
G41Y[#132+#107]
X#121
G02X[#121+#107]Y#131J-#107
G1Y#134
G02X#124Y[#134-#107]I-#107
G1X#123
G02X[#123-#107]Y#133J#107
G1Y#132
G02X#122Y[#132+#107]I#107
G03X[#122+.1]Y[[#132+#107]+.1]J.1
G0Z[#108+.1]
G40X#104
#107=#117
END1
N100G0G90Z#18
X#103Y#105
M99
N1000#3000=1( PART CORNER RAD. TOO BIG )
N1001#3000=1( X DIM. TOO SMALL )
N1002#3000=1( Y DIM. TOO SMALL )